package designPattern.state
{
	import flash.net.NetStream;
	
	public class PauseState implements IState
	{
		/**
		 * PauseState中的doPause函数和PlayState类使用了同一个方法ns.togglePause(),
		 * 然而，doPause()函数不是获得PauseState状态，而是获得PlayState。
		 * 因为此时的doPause()是继续播放的意思，强调的是“继续播放”，从而进入了播放
		 * 状态即PlayState。如果在pause状态时开始start状态，会继续上次断点继续的。 
		 */		
		private var works:IWorks;
		public function PauseState(w:IWorks)
		{
			this.works = w;
		}
		
		//如果在pause状态时开始start状态，会继续上次断点继续的
		public function startPlay(ns:NetStream, url:String):void
		{
			doPause(ns);
		}
		
		public function startStop(ns:NetStream):void
		{
			trace("Can not go to stop from pause.");
		}
		//pause是继续上次断点继续
		public function doPause(ns:NetStream):void
		{
			ns.togglePause();
			works.setState(works.getPlayState());
		}
	}
}